Skip to main content

Feature Matching

Description

This tool is used to detect features in an image and match them with features in another image. It uses the ORB, BRISK, AKAZE or SIFT algorithm to detect features.

Settings

Feature Matcher Detector

The algorithm used to detect features in the image. The options are ORB, BRISK, AKAZE and SIFT.

ORB Settings

ORB (Oriented FAST and Rotated BRIEF) is a fast robust local feature detector. It is a fusion of the FAST keypoint detector and the BRIEF descriptor with many modifications to enhance performance. It is suitable for real-time applications.

Read more...

Number of Features

The maximum number of keypoints to be detected in an image. Having more features can potentially improve the matching performance but may also increase computational cost.

Pyramid Decimation Ratio

The scaling factor used to create a Gaussian pyramid of the input image for scale-invariant feature detection. In ORB, this ratio determines how the image is downscaled at each level of the pyramid.

Number of Pyramid Levels

The number of pyramid levels in ORB determines the number of levels in the Gaussian pyramid used for scale-invariant feature detection. A larger number of pyramid levels increases the scale invariance of the detected features but may also increase the computational cost.

Edge threshold

A parameter that controls the suppression of keypoints near image edges. This is done to reduce the number of false matches caused by unstable keypoints located near edges. A larger edge threshold value will result in more keypoints being suppressed near edges, while a smaller value will allow more keypoints to be detected in these regions.

First Level

The index of the first level in the Gaussian pyramid used for feature detection. By default, the first level is set to 0, meaning that feature detection starts from the original input image. However, in some cases, it might be beneficial to start feature detection at a higher level of the pyramid, effectively skipping the lower-resolution levels. This can be useful for reducing computational cost or focusing on features at specific scales.

WTA K

A parameter that defines the number of random points to be compared within the binary descriptor. For example, if WTA_K is set to 3, then 3 random points will be compared to compute the binary descriptor, resulting in a 2-bit response. A higher WTA_K value increases the descriptor's distinctiveness but also increases the computation cost

Score Type

The score type used to rank features. The options are Harris and FAST.

  • Harris: A corner detection method that calculates the response of the feature point based on the change in intensity in both the x and y directions. It is more robust to noise and provides a better localisation of the feature points, but it may be slower to compute compared to the FAST score.

  • FAST: A corner detection method that compares the intensity of a candidate pixel with a predefined set of pixels in its neighborhood. It is faster to compute but may be less robust to noise and may provide a poorer localisation of the feature points.

BRISK Settings

BRISK (Binary Robust Invariant Scalable Keypoints) is a scale and rotation invariant feature detector. It is a fusion of the FAST keypoint detector and the BRIEF descriptor with many modifications to enhance performance. It is suitable for real-time applications.

Detection Threshold

The value used to determine whether a keypoint should be considered as a feature point. This threshold is used for short pairings used in descriptor formation.

Detection Octaves

The number of scales that the algorithm should search for keypoints. By using multiple scales, the algorithm can detect keypoints at different resolutions, making it more robust to scale changes.

Pattern Scale

The pattern scale is a factor applied to the sampling pattern used for sampling the neighborhood of a keypoint. In BRISK, keypoints are described by comparing the intensities of pairs of points sampled from a circular pattern around the keypoint. The pattern scale determines the size of this pattern. A larger pattern scale will result in a larger area being sampled around the keypoint, potentially making the descriptor more robust to changes in scale.

AKAZE Settings

AKAZE (Accelerated-KAZE) is a fast and robust local feature detector. It is a fusion of the KAZE keypoint detector and the BRIEF descriptor with many modifications to enhance performance. It is suitable for real-time applications.

Descriptor Type

AKAZE provides four descriptor types, which are:

  • KAZE Upright: Computes the KAZE features without rotation invariance. It is faster compared to the standard KAZE descriptor, but less robust to changes in orientation. It is suitable for applications where the orientation of the objects in the images is known or consistent.

  • KAZE: Computes the KAZE features with rotation invariance. It is more robust to changes in orientation but slower compared to the KAZE Upright descriptor. It is suitable for applications where the orientation of the objects in the images can vary.

  • MLDB Upright: Computes the Modified Local Difference Binary (MLDB) features without rotation invariance. It is faster and more memory-efficient compared to KAZE Upright, but less robust to changes in orientation. It is suitable for applications where the orientation of the objects in the images is known or consistent.

  • MLDB: Computes the Modified Local Difference Binary (MLDB) features with rotation invariance. It is more robust to changes in orientation and more memory-efficient compared to KAZE, but slower. It is suitable for applications where the orientation of the objects in the images can vary

Descriptor size

The length of the feature vector produced by the descriptor for each keypoint. It can vary based on the descriptor type and the configuration parameters. In general, the MLDB descriptor has a smaller size compared to the KAZE descriptor, which results in lower memory requirements and faster matching

Descriptor Channels

The number of channels used in the feature vector computation. In the case of AKAZE, the descriptor uses a single channel, as it works with grayscale images.

Detector Threshold

A parameter used by the keypoint detector to determine which points in the image should be considered as keypoints. It is used to filter out points with low contrast or low repeatability. A higher threshold results in fewer keypoints being detected, while a lower threshold results in more keypoints. The choice of detector threshold depends on the specific application and the trade-offs between the number of keypoints, computational efficiency, and robustness.

Number of Octaves

A parameter that defines the number of times the original image is downsampled. Each octave corresponds to a different resolution level of the image. The purpose of using multiple octaves is to make the feature detection scale-invariant, allowing the algorithm to detect features at various scales in the image. The higher the number of octaves, the more scale levels the algorithm will consider, which can improve the detection of features at different scales but may increase the computational cost.

Number of Octave Layers (Sublevels)

The number of intermediate layers within each octave. These layers are generated by applying a Gaussian blur with different sigma values to the original image, which helps in detecting features of different sizes within a single octave. Thus, using more sublevels can improve the detection of features at various sizes within a single scale but may also increase the computational cost.

Diffusivity Type

A parameter in AKAZE that determines the type of diffusion function used to compute the nonlinear scale space.

There are three main diffusivity types:

  • PM G2: is the default diffusivity type in AKAZE and provides a good balance between performance and computational cost.
  • Weickert: is a diffusivity type that provides a more detailed nonlinear scale space compared to PM G2 but is slower to compute.
  • Charbonnier: is a diffusivity type that provides a smoother nonlinear scale space compared to PM G2 but is slower to compute.

SIFT Settings

SIFT (Scale-Invariant Feature Transform) is a scale and rotation invariant feature detector. It is a fusion of the DoG keypoint detector and the SIFT descriptor with many modifications to enhance performance. It is suitable for real-time applications.

Number of Features

The keypoints detected in an image. Keypoints are interesting points in an image that are invariant to image scale, orientation, and illumination changes. They usually lie on high-contrast regions of the image, such as object edges. In SIFT, keypoints are extracted as local minima/maxima of the Difference of Gaussians (DoG) across multiple scales

Number of Octave Layers

In the SIFT algorithm, the image is convolved with Gaussian filters at different scales. The convolved images are grouped by octave, where an octave corresponds to doubling the value of the Gaussian filter's standard deviation, sigma.

Contrast Threshold

A parameter used during the keypoint localisation step. After detecting potential keypoint locations, these locations are refined to obtain more accurate results. A keypoint is rejected if its intensity at the extrema is less than a threshold value.

Edge Threshold

The edge threshold is another parameter used during keypoint localization. Since the Difference of Gaussians has a higher response for edges, edge keypoints need to be removed. A concept similar to the Harris corner detector is used to compute the principal curvature using a 2x2 Hessian matrix. If the ratio of the eigenvalues of the Hessian matrix is greater than a threshold value, the keypoint is rejected.

Sigma

The standard deviation of the Gaussian filter. The image is convolved with Gaussian filters at different scales, and an octave corresponds to doubling the value of sigma. Sigma determines the amount of smoothing applied to the image and affects the scale at which keypoints are detected.

Match Number Threshold

The minimum number of matches required to consider a pair of images as a match. This threshold is used to filter out pairs of images that do not have enough matches to be considered a match.

Match Ratio Threshold

Match threshold using the Lowe's ratio, which is the ratio of the distance between the first and second closest matches to the distance between the first and third closest matches. This threshold is used to filter out matches that are not distinctive enough.

Reference Images (Server)

The reference images are the image that are used to detect the object in the scene. Path within server to the reference image files.

Reference Images

The reference images are the images that are used to detect the object in the scene. Path within server to the reference image files. Images within the UI computer to the reference image files.

Display Results

Overlay Results

Whether to draw the results on top of the image frame.